<?php
/*
 * estudo de padrões de projetos com php
 * author: fabricio s costa
 * version: 1.0
 * site: http://fabriciojf.com
 */

require_once('com/fabriciojf/action/Action.class.php');
require_once('com/fabriciojf/persistence/PostDAO.class.php');
require_once('com/fabriciojf/persistence/CategoriaDAO.class.php');
require_once('com/fabriciojf/security/Permission.class.php');

class AlterarPostAction implements Action {
    public function execute() {
        //segurança        
        Permission::requireInRole(array('admin'));

        $acao = strtolower(trim($_POST['redirect'] . $_GET['redirect']));
        $categoria = new CategoriaDAO();

        if ($acao == 'remover') {
            $dao = new PostDAO();
            $dao->remove($_POST['idPost'] . $_GET['idPost']);
            FrontController::sendRedirect('Home');
        } else if ($acao == 'visualizar') {            
            $_POST['idPost'] = $_POST['idPost'];
            FrontController::sendRedirect('LerPost');
        } else {

            // instancio a classe Agenda
            $post = new Post();
            $post->setId($_POST['idPost']);
            $post->setTitulo($_POST['titulo']);
            $post->setConteudo($_POST['conteudo']);
            $post->setCategoria($categoria->findForId(1));
            $post->setTipo($_POST['tipo']);
            $post->setDataCriacao(date("Y-m-d"));

            // instancio a classe Data Access Object para Agenda
            $dao = new PostDAO();
            if ($dao->update($post)) {
                $_POST['idPost'] = $post->getId();
                if ($acao == 'salvar') {
                    FrontController::sendRedirect('EdicaoPost');
                } else if ($acao == 'publicar') {
                    FrontController::sendRedirect('LerPost');
                }

            } else {
                FrontController::sendRedirect('LerPost');
            }
        }
    }
}
?>
